De data is online beschikbaar. O.a. hier. Plaats alle shapefiles in dezelfde folder als je R script en lees de data in.
library(rgdal)
gemeentenShp <- readOGR(".","gemeenten")
## OGR data source with driver: ESRI Shapefile
## Source: ".", layer: "gemeenten"
## with 393 features
## It has 6 fields
Converteer de coordinaten naar een voor R bruikbaar format.
gemeentenShp <- spTransform(gemeentenShp, CRS("+proj=longlat +datum=WGS84"))
Zet de lijst om naar een data frame.
library(broom)
gemeentenDF <- tidy(gemeentenShp)
Bouw de kaart.
library(ggplot2)
library(ggmap)
nl<-get_map("Netherlands",zoom=8)
nl <- ggmap(nl) +
geom_polygon(aes(x=long,
y=lat,
group=group),
fill='grey',
size=.2,
color='green',
data=gemeentenDF,
alpha=0)
nl
Voeg de namen van de gemeenten toe aan de data frame.
gemeentenMeta <- gemeentenShp@data
gemeentenMeta$ID <- row.names(gemeentenMeta)
gemeentenDF <- merge(gemeentenDF, gemeentenMeta, by.x = 'id', by.y = 'ID')
Maak een aparte data frame aan met de namen van de gemeenten en het middelpunt van de coordinaten. Voeg deze als text layer toe aan de kaart.
cnames <- aggregate(cbind(long, lat) ~ GEMEENTENA + PROVINCIEN, data=gemeentenDF, FUN=mean)
nl <- nl +
geom_text(data=cnames, aes(long, lat, label = GEMEENTENA), size=2)
nl
Je kunt ook alleen een provincie bekijken.
library(dplyr)
library(ggrepel)
gldDF <- filter(gemeentenDF,
PROVINCIEN == "Gelderland")
gldNames <- filter(cnames,
PROVINCIEN == "Gelderland")
mapCenter <- geocode("Gelderland")
gld <- get_map(c(lon=mapCenter$lon, lat=mapCenter$lat), zoom = 9, maptype = "terrain", source="stamen")
gld <- ggmap(gld)
gld <- gld +
geom_polygon(aes(x=long,
y=lat,
group=group),
fill='blue',
size=.3,
color='red',
data=gldDF,
alpha=0.4) +
geom_label_repel(data = gldNames, aes(x = long, y = lat, label = GEMEENTENA),
fill = "white", box.padding = unit(.4, "lines"),
label.padding = unit(.15, "lines"))
#ggsave(gld, file = "gld.png", width = 8, height = 8, type = "cairo-png")
Source:
D. Kahle and H. Wickham. ggmap: Spatial Visualization with ggplot2. The R Journal, 5(1), 144-161. URL http://journal.r-project.org/archive/2013-1/kahle-wickham.pdf